
MLSplitViewCtrl = Class('MLSplitViewCtrl');  -- 定义一个类

---初始化变量
MLSplitViewCtrl.navCtrl = nil;   -- 对应的navctrl
MLSplitViewCtrl.rootView = nil;   -- 对应的navctrl


MLSplitViewCtrl.isSel  =  false;      -- 是否选中
MLSplitViewCtrl.bgImage    = nil;     -- 背景图片
MLSplitViewCtrl.bgSelImage = nil;       -- 聚集图片
MLSplitViewCtrl.itemImage    = nil;     -- 背景图片
MLSplitViewCtrl.iteselImage = nil;    -- 聚集图片
MLSplitViewCtrl.itemImageWidth = nil;   -- item 宽度  在指定图片区域内居中显示 itemIcon
MLSplitViewCtrl.itemImageHeight= nil;   -- item 高度   在指定图片区域内居中显示 itemIcon
MLSplitViewCtrl.iconType = 0;     -- 0 icon和文字一排， 1 icon和文字上下排列
MLSplitViewCtrl.text   =  nil;     -- 显示文本
MLSplitViewCtrl.fontHeight    = nil;   -- 字体高度
MLSplitViewCtrl.fontColor    = nil;    -- 字体背景颜色
MLSplitViewCtrl.fontFocusColor = nil;  -- 字体聚集颜色
MLSplitViewCtrl.iconAreaWidth    = 0;     --  问题高度
MLSplitViewCtrl.mWidth =   nil;     -- 宽度
MLSplitViewCtrl.mHeight =  nil;     -- 高度
-- 初始化
function MLSplitViewCtrl:init()
  return self;
end
function MLSplitViewCtrl:ctor() 
     print('MLSplitViewCtrl:initViewCtrl')
   return self;
end
-- 局部变量
function MLSplitViewCtrl:push(viewCtrl,animat)
    print('MLSplitViewCtrl:push=',viewCtrl)
  self.navCtrl:push(viewCtrl,1);

end

function MLSplitViewCtrl:pop(animat)
    self.navCtrl:pop(1);
end

function MLSplitViewCtrl:popOfViewCtrl(viewCtrl,animat)
    self.navCtrl:popOfViewCtrl(viewCtrl,animat);
end

--[[
功能   ：  controller被创建 状态
参数   ： 无
返回   ： 无
]]
function MLSplitViewCtrl:onCtrlCreate(rootView)
    self.rootView = rootView;
    --self.hideHeadView = true;
    if self.hideHeadView == nil or self.hideHeadView == false then
    self.headView = UIHeadView.new():init(self,'ViewCtrl.hideview');
    self.headView:setTitle(self.title);
    if #Application.rootNavCtrl.viewCtrls >1 then
      self.headView:setLeftHidden (false)
    else
        self.headView:setLeftHidden (true)
    end
    
    local headH = self.headView:getHeight();
    local w,h = rootView:getWH();
    local content = MLView.new():initView(w, h - headH,nil,'ViewCtrl.content');
     local content = MLView.new():initView(w, h - headH,self);
    rootView:add(self.headView, 0, 0);
    rootView:add(content, 0, headH);
    self:onCreate(content);
  else
    self:onCreate(rootView);
  end

    --刷新view
    if self.weekTable.viewcash then
    for i,v in ipairs(self.weekTable.viewcash) do
        if v.onCreate then
        v:onCreate();
      end
      if v.show then
        v:show();
      end
    end
  end
  -- 通知插件状态
  if self.weekTable.plugincash then
    for i,v in ipairs(self.weekTable.plugincash) do
        if v.onCreate then
        v:onCreate();
      end
    end
  end
end
--[[
功能   ： 初始化splitview
参数   ： width   splitview的总宽度
参数   ： height splitview 的总高度
参数   ： leftViewWidth 左边菜单的宽度
参数   ： titleView  左边菜单部分的标题
参数   ： viewCtrl 

返回   ： 无
]]
function MLSplitViewCtrl:initSplitView(width, height, leftViewWidth,titleView,viewCtrl, id)
  width  = width or UITheme.SPLITVIEW_WIDTH;
  height = height or UITheme.SPLITVIEW_HEIGHT;

  self.titleView =titleView;
  self.mWidth =  width;
  self.mHeight = height;
  self.leftViewHeight = leftViewWidth;
  self.viewCtrl = viewCtrl;
  self.titleView = titleView;
  self.mContentRootView = MLView.new():initView(width-leftViewWidth, height,viewCtrl, id);
  --  self.mContentRootView:setBg(UIImage.imageName('detail_bg.png'));
  self.mContentRootView:setColor(0xffff00);
  self.mItemsRootView = MLView.new():initView(leftViewWidth,height,viewCtrl, id);
  self.rootView:add(self.mContentRootView,leftViewWidth,0);
  self.rootView:add(self.mItemsRootView,0,  0); --[[]]
end

function MLSplitViewCtrl:setViewCtrls(...)
  self.mContentCtrls = arg;
end


function MLSplitViewCtrl:setBarItemView( ... )
  self.mSplitItemViews = arg;
  local num = #self.mSplitItemViews;
  local x= 0;
  local y = 0;

  if self.titleView  then
    self.mItemsRootView:add(self.titleView,0, y);
    x,y = self.titleView:getWH();
  end
 
  for i,v in ipairs(self.mSplitItemViews) do
    v.tag = i;
    v:show();
    v.onClick = function ()
      self:setSelTabBarView(i);  -- 改变tabBbar状态
       self:setSelItem(i);
    end
    self.mItemsRootView:add(v,0, y);
    y = y + v.mHeight;
  end
  local  width = 0;
  for i,v in ipairs(arg) do
    width = v.mWidth  + width;
  end
  if width > self.mWidth then
  else
  end
end

--[[
功能   ： 设置tab选中索引
参数   ： index   --- 选中索引
返回   ： 无
]]
function MLSplitViewCtrl:setSelItem(index)
  local num = #self.mContentCtrls;
  if  index > num then return end
  local viewCtrl = self.mContentCtrls[index];
  self.navCtrl  = NavCtrl.new():init();     -- 创建导航控制器
  self.navCtrl.rootView = self.mContentRootView;
  self.navCtrl:push(viewCtrl)
  self.selectItem =  index;
end

--[[
功能   ： 得到当前选中的tabbar索引
参数   ： 无
返回   ： 无
]]
function MLSplitViewCtrl:getSelItem()
  return self.selectItem;
end

-----------------------------函数内部-----------------------------------------------------
--[[
功能   ： 设置选中第一个tabcard
参数   ： index   --- 选中索引
返回   ： 无
]]
function MLSplitViewCtrl:setSelTabBarView(index)
  local num = #self.mSplitItemViews;
  if  index > num then return end
  if  self.selectItem == index then return end

  for i,v in ipairs(self.mSplitItemViews) do
    if  i == index then
      v.isSel =true;
    else
      v.isSel =false;
    end
    v:show();
  end
end

--[[
功能   ： 显示控件
参数   ： 无
返回   ： 无
]]
function MLSplitViewCtrl:show()
  if self.selectItem == -1 then
    self:setSelTabBarView(1);  -- 改变tabBbar状态
    self:setSelItem(1)
  end
end

--[[
功能   ： 更新控件
参数   ： 无
返回   ： 无
]]
function MLSplitViewCtrl:update()
  self:show();
end




--[[
功能   ： controller恢复 状态
参数   ： 无
返回   ： 无
]]
function MLSplitViewCtrl:onCtrlResume()
  print('MLSplitViewCtrl:onCtrlResume')
  self:onResume();
  if self.weekTable.viewcash then
    for i,v in ipairs(self.weekTable.viewcash) do
      if v.onResume then
        v:onResume();
      end
    end
  end
    -- 通知插件状态
  if self.weekTable.plugincash then
    for i,v in ipairs(self.weekTable.plugincash) do
        if v.onResume then
        v:onResume();
      end
    end
  end
end

function MLSplitViewCtrl:onCtrlPause()
  print('MLSplitViewCtrl:onCtrlPause')
  self:onPause();
  if self.weekTable.viewcash then
    for i,v in ipairs(self.weekTable.viewcash) do
      if v.onPause then
        v:onPause();
      end
    end
  end
    -- 通知插件状态
  if self.weekTable.plugincash then
    for i,v in ipairs(self.weekTable.plugincash) do
        if v.onPause then
        v:onPause();
      end
    end
  end
end

function MLSplitViewCtrl:onCtrlDestroy()
  print('MLSplitViewCtrl:onCtrlDestroy')
  self:onDestroy();
  if self.weekTable.viewcash then
    for i,v in ipairs(self.weekTable.viewcash) do
      if v.onDestroy then
        v:onDestroy();
      end
    end
  end
      -- 通知插件状态
  if self.weekTable.plugincash then
    for i,v in ipairs(self.weekTable.plugincash) do
        if v.onDestroy then
        v:onDestroy();
      end
    end
  end
end
--[[
功能   ： 根据视图ID得到视图
参数   ： 无
返回   ： 无
]]
function MLSplitViewCtrl:getView(id)
    if id == nil then return end
      if self.weekTable.viewcash  then   
        for i,v in ipairs(self.weekTable.viewcash) do
          if v.id == id then
        return v;
      end
    end
  end
end
--[[
功能   ： 将视图添加到控制里
参数   ： 无
返回   ： 无
]]
function MLSplitViewCtrl:addView(view)
    if self.weekTable.viewcash  then   -- 添加到ctrl缓存
    self.weekTable.viewcash[#self.weekTable.viewcash + 1] = view; -- 填到刷新队列
  end
end

--[[
功能   ： 添加插件
参数   ： 无
返回   ： 无
]]
function MLSplitViewCtrl:addPlugin(plugin)
    if self.weekTable.plugincash  then   -- 添加到ctrl缓存
    self.weekTable.plugincash[#self.weekTable.plugincash + 1] = view; -- 填到刷新队列
  end
end

------------------------------ 代理


--[[
功能   ：  controller被创建 代理
参数   ： 无
返回   ： 无
]]
function MLSplitViewCtrl:onCreate(rootView)
  print("MLSplitViewCtrl:onCreate")
end

--[[
功能   ： controller恢复 代理
参数   ： 无
返回   ： 无
]]
function MLSplitViewCtrl:onResume()
end

--[[
功能   ： controller暂停 代理
参数   ： 无
返回   ： 无
]]
function MLSplitViewCtrl:onPause()
end

--[[
功能   ： controller 摧毁代理
参数   ： 无
返回   ： 无
]]
function MLSplitViewCtrl:onDestroy()
end


